import tkinter as tk
import random
import time
def create_note():
    """创建单个便签（在主线程中执行）"""
    # 创建子窗口
    window = tk.Toplevel(root)
    window.title('温馨提示')
    # 窗口置顶 + 半透明
    window.attributes("-topmost", True)
    window.attributes("-alpha", 0.85)
    # 获取屏幕尺寸
    width = root.winfo_screenwidth()
    height = root.winfo_screenheight()
    # 随机位置（确保窗口完全显示）
    a = random.randrange(0, width - 220)
    b = random.randrange(0, height - 50)
    # window.geometry(f"220x50+{a}+{b}")
    window.geometry(f"300x100+{a}+{b}")
    # 随机文字
    texts = ['注意保暖！', '记得好好照顾好自己', '天天开心', '好好吃饭', '早点睡觉', '别感冒', '期待下次见面', '保持微笑', '你是最棒的！']
    text = random.choice(texts)
    # 随机背景色
    bg_colors = ['pink', 'Lightskyblue', 'lightgreen', 'lavender', 'lightyellow', 'Darkviolet', 'orange']
    bg = random.choice(bg_colors)
    # 添加文字标签
    tk.Label(
        window,
        text=text,
        bg=bg,
        font=('楷体', 18),
        # width=25,
        # height=4
        width=50,
        height=10
    ).pack()
    # 10秒后自动关闭
    window.after(10000, window.destroy)
def generate_notes(count, interval=0.01):
    """批量生成便签（主线程循环调度）"""
    if count > 0:
        create_note()
        # 延迟 interval 秒后继续生成下一个（主线程安全调度）
        root.after(int(interval * 1000), generate_notes, count - 1, interval)
if __name__ == "__main__":
    # 主窗口（仅用于调度，不显示）
    root = tk.Tk()
    root.withdraw()  # 隐藏主窗口
    # 生成150个便签，间隔0.01秒
    generate_notes(150)
    # 启动主循环（Tkinter 必须在主线程运行）
    root.mainloop()




